1693180800000
1693180800000

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de 24.203636363636 connecté.e.s.



Les joueurs et joueuses de Keldaria ont au total joué 68696.101085 heures sur le serveur.



Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
1 ???? Revus 2484 h 16 m 51 s 1166 h 0 m 40 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
2 Unutea Skozawa 1714 h 26 m 6 s 742 h 29 m 18 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
3 Salomon SalomonEbenac 1467 h 56 m 56 s 1041 h 45 m 17 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
4 ✟ Afton ☕ Skajik 1156 h 50 m 31 s 1035 h 1 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
5 Volodymyr Volodymyr 1346 h 47 m 41 s 402 h 11 m 37 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
6 Esther Esther 1314 h 2 m 38 s 1026 h 11 m 11 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
7 Morder sanshack 1098 h 35 m 48 s 323 h 53 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
8 Maïa Alshoba 1042 h 38 m 33 s 672 h 45 m 53 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
9 Léopold Toden 992 h 18 m 46 s 406 h 16 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
10 Hakon Hakon 843 h 19 m 9 s 388 h 42 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
11 Jarod Mornechêne Mitajax2 757 h 22 m 35 s 881 h 51 m 34 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
12 Thorwin Asimov Lund Elerinna 683 h 13 m 55 s 342 h 46 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
13 Louis Mandrin Farclos 886 h 25 m 21 s 530 h 56 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
14 Hulbert c0ack 657 h 41 m 10 s 429 h 31 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
15 ??? Charles 816 h 5 m 19 s 543 h 20 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
16 Drake Deyll 767 h 24 m 21 s 167 h 14 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
17 Julius tadrox 724 h 58 m 56 s 108 h 10 m 48 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
18 Jurgen ShobatsuMitei 668 h 46 m 10 s 393 h 48 m 11 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
19 Karl Shigetsuka 539 h 56 m 45 s 365 h 13 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
20 Ali'amad Suryakïm Aliamad 760 h 10 m 39 s 512 h 56 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
21 Morwën SHenerys 696 h 52 m 26 s 453 h 46 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
22 Tosteen Eretty 684 h 56 m 1 s 321 h 34 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
23 Cielle Cielle 628 h 41 m 5 s 467 h 8 m 34 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
24 Tannulf Remi4249 667 h 48 m 16 s 251 h 37 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
25 Donos Monos 673 h 14 m 19 s 850 h 6 m 7 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
26 Camille MisterWallas 553 h 26 m 33 s 305 h 34 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
27 Clothaire Clothaire 421 h 7 m 9 s 567 h 34 m 34 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
28 Alvo Ormin 642 h 37 m 20 s 271 h 22 m 48 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
29 Vidar SoulEater 626 h 36 m 53 s 168 h 41 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
30 Abel Colin 589 h 47 m 4 s 811 h 18 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
31 Vihana Tereni Suryakïm Miadray 565 h 58 m 8 s 354 h 35 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
32 Lubin KaLix 446 h 25 m 27 s 72 h 17 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
33 Abigail Abigail 504 h 47 m 3 s 222 h 36 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
34 Gimli Gimli 553 h 35 m 6 s 175 h 49 m 34 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
35 Thomas Noxy 511 h 18 m 47 s 34 h 49 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
36 Jean Gérard Baron Dragono 513 h 22 m 38 s 63 h 5 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
37 ??? Nathanaelle2611 471 h 40 m 23 s 3350 h 37 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
38 Proxome Proxome 398 h 27 m 36 s 826 h 24 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
39 Circei Tereni ✶ Haevan 493 h 16 m 1 s 366 h 22 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
40 Luna Shad0w 447 h 12 m 20 s 611 h 8 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
41 Ginny unesome 443 h 45 m 25 s 261 h 38 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
42 Dwen MisterGindwen 366 h 50 m 57 s 228 h 51 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
43 ???? Revux 447 h 13 m 26 s 961 h 51 m 4 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
44 ??? Maxou4 411 h 3 m 41 s 566 h 20 m 32 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
45 Gabryël Gabryel 443 h 52 m 1 s 286 h 4 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
46 Egil Egil 334 h 6 m 17 s 605 h 45 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
47 Rumi Rumi 439 h 6 m 54 s 366 h 0 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
48 Alyx Natsuki 455 h 26 m 16 s 110 h 5 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
49 Frère Maximus Maximus 387 h 6 m 28 s 238 h 46 m 56 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
50 endrosus doudoune 455 h 57 m 19 s 86 h 16 m 18 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
51 Enoha Dess 409 h 4 m 53 s 440 h 34 m 58 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
52 Roseline De Nariel BombshellCherry 411 h 45 m 0 s 559 h 51 m 4 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
53 Roger JolyRoger 424 h 50 m 57 s 157 h 8 m 59 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
54 Edmund Vert 341 h 24 m 24 s 416 h 53 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
55 Fredïs RedBuff 425 h 17 m 19 s 55 h 44 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
56 Kris GalaruSeren 431 h 37 m 49 s 208 h 8 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
57 Marc Bénilde noelemac 429 h 28 m 16 s 62 h 7 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
58 Sigurd Dead 358 h 58 m 56 s 270 h 5 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
59 Rowan DeaD 393 h 12 m 44 s 240 h 54 m 8 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
60 Elisa ElisaSteam 393 h 53 m 54 s 73 h 45 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
61 Rodrigue d'Éméruldo TyzeR 301 h 37 m 30 s 1059 h 46 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
62 ⊹˚₊‧ Mirage ‧₊˚⊹ Mirage 270 h 39 m 28 s 948 h 52 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
63 Violette Natsukiii 395 h 15 m 37 s 265 h 9 m 54 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
64 Qiao Zhu Qiao 351 h 31 m 47 s 270 h 31 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
65 Gisèle Millicie 387 h 35 m 19 s 170 h 17 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
66 Hillilys DrLaFougere2 377 h 33 m 21 s 125 h 1 m 29 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
67 Néph'ahri Nephahri 377 h 49 m 26 s 211 h 12 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
68 Lo-Anna Astréos LoDelaVache 371 h 36 m 54 s 225 h 44 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
69 Finel Finel 382 h 57 m 34 s 63 h 8 m 51 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
70 Aethelred Banana36018 338 h 39 m 43 s 204 h 31 m 53 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
71 Lèif TheGoat 370 h 47 m 49 s 125 h 34 m 44 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
72 Damo'Kles Damokles 353 h 8 m 33 s 55 h 44 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
73 Rollo Ravengart RolloRavengart 311 h 54 m 33 s 566 h 45 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
74 ???? Opantoufles 349 h 23 m 4 s 195 h 4 m 38 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
75 Bezosse AnimateurActif 346 h 13 m 51 s 154 h 40 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
76 Raznov GRaznov 333 h 56 m 19 s 181 h 50 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
77 Kykha Kykha 310 h 26 m 47 s 156 h 25 m 6 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
78 Elizælle Elizaelle 291 h 36 m 17 s 168 h 1 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
79 Assistant AlexiS 262 h 37 m 25 s 476 h 43 m 12 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
80 Ezechiel labarof 266 h 50 m 40 s 36 h 7 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
81 ??? JW0olfy 306 h 3 m 2 s 119 h 11 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
82 Père Viktor DarkKrause 297 h 3 m 2 s 89 h 57 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
83 Andro-Medus Andro 290 h 45 m 16 s 265 h 43 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
84 AlkanDekan 265 h 30 m 36 s 135 h 7 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
85 FEUR Todente 167 h 35 m 9 s 242 h 19 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
86 Amiphott ReineYasha 266 h 41 m 1 s 142 h 51 m 54 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
87 Grégoire GregoireDiamant 260 h 12 m 59 s 67 h 31 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
88 Abbé Maille-Keull Mikeal 239 h 33 m 41 s 184 h 34 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
89 Reina Emeraude201 224 h 56 m 34 s 29 h 43 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
90 Leon Rayan1987 217 h 48 m 21 s 67 h 30 m 37 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
91 Vénuk Iranau 182 h 7 m 34 s 420 h 15 m 57 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
92 Un mec Dark91 244 h 24 m 42 s 23 h 55 m 12 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
93 Arion QuadrAlexis 204 h 51 m 1 s 122 h 48 m 16 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
94 Mata-Tuata Matatuata 235 h 35 m 48 s 174 h 43 m 32 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
95 Guillaume Spirit08 210 h 14 m 49 s 68 h 40 m 30 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
96 Honu CookingIssue 222 h 48 m 49 s 286 h 0 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
97 Jack Smith NewYork00 189 h 29 m 21 s 20 h 29 m 16 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
98 Adonis DrLaFougere 228 h 26 m 1 s 75 h 8 m 8 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
99 Hugo De l'Ecluse HugoLecluse 207 h 48 m 30 s 157 h 20 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
100 Ewen DarkArmy11 218 h 44 m 13 s 117 h 45 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
101 Morgane Henerys 182 h 30 m 11 s 121 h 1 m 4 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
102 Marie marine 186 h 42 m 22 s 329 h 22 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
103 Zeal'Kor GamingRaznov 223 h 10 m 46 s 507 h 40 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
104 Théoderid BouffeurDeTicket 222 h 3 m 46 s 238 h 14 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
105 Thésée d'Eméruldo Ozaki 207 h 33 m 58 s 640 h 9 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
106 Adémar Fifrelin 201 h 28 m 46 s 84 h 1 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
107 Shara Emeraude 216 h 58 m 2 s 17 h 48 m 16 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
108 Rouldur Barbe-D'or Flabustibule 211 h 0 m 14 s 42 h 56 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
109 Sirius Kaldwin Hvedrung07 202 h 6 m 31 s 292 h 53 m 14 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
110 Malo OogieBoogie 168 h 33 m 17 s 169 h 56 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
111 Ewen Opax 204 h 15 m 38 s 35 h 41 m 14 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
112 Serana Rokanel Emeraude2 181 h 35 m 2 s 36 h 47 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
113 ??? Shad0wFallen 182 h 14 m 36 s 298 h 31 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
114 Alek 193 h 51 m 14 s 37 h 22 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
115 Emriss Ciryions 194 h 28 m 57 s 23 h 14 m 36 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
116 Svaknir Artegore 157 h 45 m 10 s 250 h 17 m 38 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
117 Monique Delos 186 h 29 m 7 s 78 h 56 m 29 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
118 Alfred Miki8 179 h 37 m 33 s 267 h 44 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
119 Thorfinn 3arbidelux93 176 h 26 m 38 s 89 h 16 m 29 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
120 Asthanor Tracker 171 h 27 m 15 s 99 h 4 m 34 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
121 norh siger shamane93 170 h 33 m 6 s 89 h 57 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
122 ????? Playexis 169 h 5 m 7 s 73 h 14 m 38 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
123 Maurice Momo 133 h 51 m 50 s 117 h 42 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
124 THEDIRT THEDIRT 149 h 17 m 31 s 86 h 55 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
125 ? ? ? Stalla 160 h 1 m 19 s 68 h 56 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
126 Thalrane Kayzs 173 h 33 m 36 s 25 h 16 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
127 Bhrom Loran 165 h 59 m 0 s 69 h 33 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
128 L'apocalyptse CHAOS 72 h 39 m 4 s 220 h 35 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
129 Svart noham360 159 h 23 m 42 s 74 h 24 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
130 Thorian 13mama08 164 h 38 m 28 s 57 h 13 m 22 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
131 Aurore PatiGirl 161 h 59 m 59 s 59 h 5 m 8 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
132 Arthur Vaindiou DatFrenchGuy 159 h 20 m 10 s 33 h 31 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
133 Aeden Terrwax 159 h 35 m 16 s 27 h 30 m 44 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
134 Mathieu FRCARGO 155 h 46 m 50 s 62 h 13 m 12 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
135 Alexel ⭔ ItsAxel 148 h 30 m 23 s 147 h 40 m 40 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
136 Temaru IloMilo 136 h 49 m 55 s 93 h 1 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
137 Houtread CARGO 144 h 24 m 39 s 73 h 31 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
138 Cheshire Cheshire 137 h 35 m 59 s 312 h 4 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
139 Kley Smoke 140 h 5 m 5 s 59 h 49 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
140 tosteen 132 h 37 m 0 s 166 h 25 m 53 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
141 Vanitas Fantome 131 h 33 m 7 s 41 h 33 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
142 Inquisiteur Macbeth Zeltaliyx3 108 h 39 m 41 s 124 h 9 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
143 Assistance c0ack2 109 h 10 m 54 s 190 h 28 m 34 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
144 Michel le plat GMichel 126 h 23 m 0 s 45 h 41 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
145 Flora PotiFarfaD 115 h 34 m 10 s 54 h 26 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
146 Arthur Hurtson Antalex 124 h 6 m 4 s 10 h 21 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
147 the end ... 0pan 119 h 51 m 23 s 20 h 18 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
148 Lassgar Lunatic 111 h 26 m 30 s 34 h 52 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
149 Adamant TheAdamant 117 h 2 m 54 s 44 h 24 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
150 Tristan Balder DTeacher 116 h 29 m 19 s 18 h 1 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
151 Talia Xane 97 h 21 m 7 s 88 h 9 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
152 Omar 3arbidelux77 99 h 39 m 21 s 48 h 48 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
153 Beowulf Mitajax 107 h 48 m 57 s 13 h 58 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
154 🎟🎁🤎❌Yann Laizu 106 h 52 m 8 s 21 h 32 m 58 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
155 Chang Juan Kenshy 84 h 27 m 0 s 131 h 30 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
156 Gustav Korsayr 105 h 23 m 22 s 39 h 46 m 51 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
157 Taslima shnitz 88 h 1 m 19 s 37 h 31 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
158 Guillaume V Hakura 85 h 49 m 26 s 51 h 21 m 28 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
159 Céleste LugMoz49 97 h 41 m 10 s 75 h 6 m 30 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
160 heli walterwhite 94 h 1 m 32 s 12 h 21 m 8 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
161 Syrner GSyrner 96 h 47 m 10 s 299 h 8 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
162 Louis UnSanglier 97 h 55 m 41 s 30 h 8 m 28 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
163 Fahrner Stefansson Dragono1017 92 h 47 m 26 s 494 h 45 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
164 Etnios Forgeclair Irathyy 95 h 47 m 13 s 78 h 44 m 17 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
165 Aliénor Toden2 90 h 24 m 45 s 54 h 39 m 54 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
166 Pomme Emma 93 h 34 m 25 s 22 h 57 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
167 Grinugan Iranau01 94 h 36 m 33 s 47 h 3 m 17 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
168 Alexel ⭓ ItsAlex 91 h 12 m 57 s 63 h 14 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
169 Astralya Astra 78 h 3 m 54 s 89 h 6 m 56 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
170 Auraline Auraline 91 h 59 m 54 s 54 h 9 m 36 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
171 Elwyn Skyhunter128 91 h 40 m 32 s 26 h 35 m 48 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
172 Konrad Squalaxe 78 h 53 m 42 s 27 h 25 m 36 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
173 Estienne Dragler HakuraGK 85 h 52 m 17 s 58 h 23 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
174 Aldris II d'Herewyne Noctys 79 h 50 m 49 s 38 h 5 m 14 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
175 Anim Fougere DrLaFougere3 79 h 14 m 22 s 21 h 39 m 30 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
176 Bron Gaadjuh 65 h 33 m 22 s 23 h 13 m 37 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
177 Anastasia Yoshido 82 h 9 m 8 s 15 h 12 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
178 Fortis Eri 84 h 0 m 19 s 14 h 36 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
179 Juno Ginger2020 82 h 12 m 24 s 24 h 29 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
180 Galadriel Galadriel 71 h 47 m 5 s 65 h 27 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
181 Baldur Forgétoile Cahyr 79 h 31 m 0 s 26 h 44 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
182 Haku Ná (哈苦 拿) Haakhuna 64 h 6 m 55 s 64 h 24 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
183 Rodrigo adrii99 75 h 51 m 0 s 22 h 1 m 59 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
184 Elsa Elsa 77 h 36 m 45 s 45 h 40 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
185 Williams Zeltaliyx2 67 h 57 m 53 s 24 h 58 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
186 Einarr 75 h 22 m 45 s 12 h 28 m 28 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
187 Lénaic Barnaby 74 h 16 m 19 s 14 h 22 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
188 Broguelius trucmuche 72 h 15 m 8 s 21 h 59 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
189 Léonard Purpleshark 54 h 2 m 58 s 35 h 19 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
190 Nimlothar Silvagil Nimlothar 72 h 6 m 46 s 15 h 58 m 53 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
191 Blair Blair 70 h 41 m 34 s 55 h 6 m 30 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
192 Nirvana Ravengart NirvanaRavengart 70 h 36 m 47 s 53 h 9 m 56 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
193 ? ? ? 111 57 h 48 m 27 s 25 h 40 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
194 Ronan Loche LandenFireYTB 70 h 11 m 18 s 34 h 37 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
195 Aerandir Little0tter 70 h 48 m 19 s 21 h 41 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
196 Drom iruaz 69 h 58 m 9 s 15 h 1 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
197 Mémé Huguette 66 h 15 m 24 s 48 h 2 m 11 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
198 Ruben Ruben 57 h 20 m 14 s 58 h 38 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
199 Dante RallenWalker 68 h 23 m 54 s 16 h 36 m 18 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
200 MisterWallas2 51 h 54 m 36 s 73 h 32 m 57 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
201 Karadoc Karadoc01 62 h 45 m 38 s 33 h 58 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
202 Aliénore Legrand deliabht 58 h 16 m 24 s 75 h 20 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
203 Baptiste Rocheux Caphouniet 62 h 6 m 9 s 63 h 2 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
204 Ali Rahmani desumn 63 h 50 m 4 s 40 h 55 m 36 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
205 Angelo de Crimson Angelo128 59 h 29 m 1 s 17 h 9 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
206 Grom Ming 60 h 45 m 33 s 11 h 35 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
207 Aldwen Harbidelux94 59 h 59 m 16 s 24 h 49 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
208 Rune JeuneRoux 58 h 47 m 53 s 34 h 59 m 59 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
209 francoise francoise 58 h 41 m 31 s 9 h 3 m 4 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
210 Hector obscurito267 55 h 20 m 15 s 74 h 48 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
211 Thaldur LeRadis 52 h 22 m 53 s 194 h 18 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
212 ben Vayth 41 h 50 m 26 s 113 h 50 m 36 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
213 Darius folowdark 56 h 0 m 21 s 4 h 28 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
214 Kenginer Eretty2 53 h 0 m 26 s 18 h 58 m 17 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
215 Gareth Sauliun 54 h 2 m 6 s 21 h 25 m 51 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
216 Siegfried Hvedrung06 44 h 16 m 34 s 148 h 16 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
217 ??? Rhume 51 h 45 m 20 s 231 h 11 m 54 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
218 Emerit Zerta 53 h 0 m 12 s 10 h 12 m 47 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
219 Gunther CobeBrilliant 50 h 42 m 17 s 6 h 20 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
220 Al-Bachir Stalla2 50 h 29 m 0 s 18 h 37 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
221 some 28 h 0 m 54 s 21 h 3 m 38 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
222 Charus 44 h 20 m 29 s 34 h 30 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
223 Hugues Von Het Kasteel HammerG3ar 42 h 7 m 22 s 22 h 17 m 54 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
224 hans Hans 47 h 10 m 0 s 34 h 16 m 17 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
225 Korhen Dargan Pigouiplayer 47 h 10 m 59 s 8 h 34 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
226 Bunther RavNeur 46 h 54 m 33 s 23 h 16 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
227 Kaemärr Kamisenin 45 h 54 m 10 s 18 h 4 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
228 Adélaïde Irene 45 h 31 m 51 s 24 h 55 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
229 Choso Natsukiwi 43 h 48 m 56 s 87 h 57 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
230 Baudoin 39 h 19 m 21 s 19 h 32 m 12 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
231 Eirwyn Dargan Haruna 42 h 50 m 14 s 5 h 28 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
232 jean-thor konuno 42 h 19 m 19 s 4 h 30 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
233 Abygaëlle Aby 40 h 46 m 17 s 51 h 37 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
234 Le baron des mers Deacon 40 h 11 m 27 s 68 h 16 m 40 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
235 Colombina Anzai RayanOld 39 h 50 m 10 s 23 h 36 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
236 Björn Bjorg 39 h 23 m 37 s 30 h 26 m 52 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
237 enzo enzo 39 h 19 m 19 s 7 h 57 m 3 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
238 Octavia Lys 27 h 19 m 26 s 72 h 37 m 14 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
239 Liv CrazyWildz 38 h 55 m 19 s 11 h 6 m 44 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
240 amiel JeuneNoblions 38 h 39 m 3 s 23 h 57 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
241 Dimitri Dimitri 37 h 27 m 39 s 17 h 5 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
242 Hans DeaDNabot 34 h 36 m 15 s 23 h 7 m 18 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
243 ??? Deux 36 h 46 m 14 s 132 h 30 m 56 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
244 Gwydion EtienneLantier 35 h 27 m 53 s 10 h 26 m 51 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
245 Valfredo yodaime19 29 h 23 m 39 s 9 h 42 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
246 Isaac Nortimer dragonpixel78 35 h 27 m 15 s 10 h 24 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
247 Sif Stormax 34 h 40 m 21 s 12 h 47 m 51 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
248 Harald Papillondenuit 34 h 6 m 45 s 10 h 56 m 47 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
249 Prepare for trouble LeDarkKing 23 h 16 m 19 s 7 h 32 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
250 Ishaq Cazzzouil 29 h 41 m 0 s 15 h 16 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
251 Ainz obscurito 32 h 10 m 21 s 9 h 28 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
252 jhone JhoneDow 32 h 34 m 9 s 22 h 35 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
253 Lenval Bladwin Rayan2000 32 h 40 m 5 s 2 h 37 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
254 Flabubulle 30 h 31 m 39 s 17 h 59 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
255 Jaime Nicofair 25 h 55 m 42 s 24 h 39 m 18 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
256 CodeWifii CodeWifii 29 h 33 m 25 s 28 h 51 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
257 Ao Drake 31 h 0 m 18 s 6 h 50 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
258 Eiden Totoro 30 h 36 m 30 s 4 h 51 m 29 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
259 Pietro Bellini Nabe 30 h 7 m 12 s 24 h 39 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
260 Axel Aksel 27 h 33 m 17 s 6 h 53 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
261 Eorl Bayl0n 29 h 39 m 1 s 5 h 50 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
262 Smarwick Karmaciiito 29 h 36 m 7 s 22 h 47 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
263 Pépin Nils 28 h 17 m 11 s 4 h 24 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
264 Olsson Bjorn luckax 28 h 0 m 56 s 11 h 53 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
265 Alvaro Opano 27 h 15 m 47 s 5 h 29 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
266 Alyce Adgarde Sprigania 26 h 17 m 18 s 9 h 1 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
267 Zakaryâ Kuzu 26 h 44 m 53 s 2 h 26 m 51 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
268 Squeak ShigetsuStaff 23 h 15 m 18 s 14 h 23 m 59 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
269 Asmaël IceTeaBE 25 h 50 m 48 s 12 h 57 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
270 Sandros Feench 25 h 46 m 24 s 8 h 12 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
271 Guillaume Guillaume 19 h 3 m 39 s 30 h 9 m 56 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
272 anewen lemecdefrance 25 h 9 m 26 s 3 h 21 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
273 Celphi Celphius 24 h 26 m 6 s 50 h 13 m 28 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
274 Demetrius MiirKa 24 h 51 m 2 s 3 h 40 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
275 Rose Rose 20 h 54 m 57 s 6 h 33 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
276 Étienne Dupuit Foxalire 24 h 29 m 46 s 3 h 23 m 30 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
277 Heydan noxferatu 24 h 7 m 58 s 8 h 35 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
278 Elias Amaran Kaadjuh 23 h 32 m 32 s 7 h 21 m 40 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
279 Jules Fordazik Kartizio 21 h 27 m 45 s 16 h 19 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
280 Kaltovia Kaltovia 22 h 16 m 21 s 10 h 1 m 6 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
281 Neve niouttt 22 h 52 m 45 s 5 h 18 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
282 Bernard 22 h 32 m 37 s 7 h 54 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
283 Mateo craftmanlistl 22 h 8 m 46 s 6 h 27 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
284 Votre Trépas Esquie 21 h 51 m 7 s 11 h 13 m 7 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
285 Florie LaCarotte 21 h 58 m 46 s 4 h 29 m 6 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
286 Karl Vaas 21 h 21 m 45 s 7 h 3 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
287 ∀ⅹ, !∃Felix-Joseph ∊ ℝ Skajik2 18 h 48 m 24 s 11 h 59 m 29 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
288 Henri Oxtrne 21 h 0 m 33 s 5 h 42 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
289 Nath Nathanael 19 h 8 m 3 s 102 h 2 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
290 Lucius Roders 21 h 22 m 51 s 22 h 21 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
291 Alric PaPaPanda 21 h 10 m 16 s 4 h 2 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
292 Mei Yang Mei 20 h 22 m 19 s 12 h 39 m 56 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
293 MaxX4 20 h 31 m 45 s 28 h 8 m 7 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
294 Félix MrLapeluche 20 h 18 m 15 s 6 h 35 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
295 Bernardo vinivedivici 20 h 7 m 41 s 14 h 43 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
296 Chen Chen 8 h 6 m 10 s 59 h 25 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
297 Olur Bozlo Boubouche 19 h 16 m 9 s 12 h 6 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
298 Muro Muro 19 h 33 m 31 s 9 h 29 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
299 Alina Moumouie 19 h 48 m 11 s 26 h 21 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
300 Cristallia Zero 19 h 46 m 38 s 12 h 1 m 47 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
301 Venceslas ChairmanMeow 19 h 41 m 13 s 7 h 55 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
302 Ulrik alexandre2325 18 h 54 m 22 s 6 h 9 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
303 Dagobert De Tully leolfve 18 h 41 m 17 s 27 h 40 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
304 Jeff AideAnimation1 18 h 43 m 14 s 5 h 57 m 47 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
305 Godot Horolox 18 h 37 m 16 s 4 h 0 m 58 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
306 Eren Eren 17 h 40 m 28 s 23 h 52 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
307 Talïa Golden 18 h 10 m 37 s 12 h 34 m 6 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
308 Rowen Banetysto 18 h 10 m 15 s 10 h 35 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
309 Aizen LuckyHamb 18 h 0 m 25 s 9 h 59 m 44 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
310 Grohbufle BoomBoomTaper 17 h 22 m 19 s 2 h 53 m 56 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
311 Jack Gaxole 16 h 27 m 27 s 56 h 25 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
312 Moulax Richelieux NawrE 16 h 9 m 5 s 1 h 14 m 8 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
313 Hérode Lui 16 h 55 m 29 s 8 h 16 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
314 adrii9 16 h 26 m 8 s 5 h 8 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
315 Trôgne LeNainNaheulbeuk 15 h 48 m 7 s 23 h 32 m 18 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
316 François Pax Lechyba 15 h 59 m 51 s 7 h 26 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
317 Zeltaliiyx 15 h 59 m 27 s 2 h 15 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
318 Bouba zolrax 15 h 37 m 32 s 3 h 53 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
319 Marcus Belmont 15 h 33 m 49 s 0 h 58 m 8 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
320 Jing Hàoran HaroldHaddoc 15 h 31 m 3 s 3 h 39 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
321 Rolan XaneBlue7 15 h 29 m 48 s 15 h 38 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
322 Ronan ted 15 h 28 m 42 s 3 h 53 m 16 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
323 ??????? TobiasWell153 15 h 7 m 27 s 13 h 59 m 59 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
324 ??? Millistaff 15 h 4 m 1 s 43 h 38 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
325 Fulbert SuperSuisse 14 h 46 m 27 s 1 h 16 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
326 Amanai Amanai 14 h 39 m 14 s 3 h 17 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
327 Harald Ravengart Irathy 14 h 34 m 57 s 6 h 24 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
328 Liao leo 14 h 22 m 55 s 47 h 29 m 56 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
329 Gildas Cereus 14 h 20 m 41 s 4 h 58 m 18 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
330 Alma Anjoiel 14 h 9 m 13 s 9 h 38 m 47 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
331 Goro Aykiiroo 14 h 3 m 40 s 3 h 51 m 17 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
332 Roki Elzane 13 h 33 m 1 s 3 h 20 m 59 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
333 Thomas TxWRevo 13 h 30 m 52 s 6 h 18 m 51 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
334 Arthur Arthur 13 h 25 m 5 s 8 h 41 m 18 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
335 Ivan Cor Modkaizer 13 h 21 m 2 s 14 h 8 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
336 Nicolas NicolasDumont 13 h 19 m 50 s 4 h 59 m 28 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
337 Stolas Kaoft 13 h 10 m 59 s 2 h 30 m 11 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
338 Conrad Masteurdemon 12 h 21 m 53 s 2 h 57 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
339 ARES 12 h 8 m 57 s 2 h 28 m 52 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
340 Kair NawrE45 12 h 6 m 12 s 1 h 34 m 4 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
341 Gontran Gontran 11 h 50 m 53 s 3 h 52 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
342 Balvan larosh9 11 h 47 m 46 s 4 h 3 m 53 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
343 Yong Le JackOMiel 11 h 47 m 43 s 22 h 54 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
344 Einar Damo2 10 h 54 m 42 s 15 h 12 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
345 Lucius 11 h 33 m 11 s 12 h 43 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
346 Eden LeGrosLoran 11 h 21 m 4 s 4 h 17 m 56 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
347 Dride Naow 11 h 14 m 13 s 1 h 32 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
348 César Sky128 11 h 13 m 5 s 7 h 25 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
349 Frère Chauve LeFrontDeMaxime 11 h 6 m 31 s 8 h 3 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
350 Noah AdDan 10 h 52 m 36 s 4 h 29 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
351 Arthur Milox 10 h 50 m 36 s 6 h 31 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
352 Shira z9y 10 h 44 m 41 s 3 h 48 m 7 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
353 Vander Trakviel BOOUUMM0507 10 h 44 m 24 s 3 h 39 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
354 Ivan gaet 10 h 43 m 8 s 5 h 49 m 47 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
355 Luccaros A. Valeim KeroRK 10 h 29 m 33 s 2 h 39 m 38 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
356 Rowland Wonhq 10 h 24 m 17 s 2 h 7 m 58 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
357 Arsène Hugooo08 10 h 7 m 11 s 2 h 16 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
358 Mokai Limea Luckax 9 h 53 m 39 s 4 h 26 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
359 Mélinda Shunsunkey 9 h 45 m 14 s 2 h 35 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
360 Aristide AideAnimation2 9 h 41 m 28 s 2 h 35 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
361 Regen Regen 9 h 35 m 29 s 6 h 55 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
362 Joseph Sun 9 h 28 m 57 s 0 h 48 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
363 Maelor Maelor 9 h 27 m 40 s 7 h 27 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
364 Akram MrGyvoX 9 h 22 m 12 s 2 h 14 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
365 Arthur Montmorency Vitality85 9 h 14 m 14 s 6 h 28 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
366 Robard Robard2 9 h 11 m 7 s 3 h 35 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
367 Eldrik Gravier 8 h 59 m 9 s 8 h 12 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
368 avechack 8 h 57 m 40 s 4 h 22 m 48 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
369 Juste Menthe 8 h 57 m 34 s 0 h 40 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
370 Léonard Marlinbleu 8 h 55 m 54 s 3 h 25 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
371 Maglor Lesgard Noldas 8 h 45 m 41 s 4 h 21 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
372 Grohpore exodiak 8 h 45 m 15 s 1 h 42 m 50 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
373 Xian zhu Yue 8 h 30 m 8 s 3 h 30 m 48 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
374 Marc Alioz 8 h 25 m 9 s 1 h 4 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
375 funa Personne 8 h 19 m 28 s 1 h 30 m 44 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
376 Harès Lego300 8 h 19 m 7 s 0 h 51 m 32 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
377 Leander JESUISMIOUZIK 8 h 8 m 54 s 1 h 33 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
378 Ymir Heimdallr 8 h 3 m 45 s 2 h 17 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
379 Joseph KyooSxn 8 h 0 m 55 s 0 h 44 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
380 Björg Tarn Sakai 8 h 0 m 6 s 8 h 58 m 40 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
381 Lucia Lucia 7 h 58 m 29 s 4 h 13 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
382 Alya PRIME Avallonnes 7 h 55 m 35 s 3 h 22 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
383 Genrin Hbaysaru 7 h 54 m 46 s 1 h 10 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
384 Alexander AlexB9 7 h 52 m 51 s 2 h 51 m 18 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
385 Lilith Mynehaom 7 h 47 m 21 s 4 h 25 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
386 Isha Isha 7 h 41 m 0 s 5 h 17 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
387 Paul steelplace9 7 h 29 m 1 s 6 h 33 m 29 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
388 Sveld May 7 h 23 m 47 s 6 h 45 m 57 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
389 Aftos julobou 7 h 23 m 13 s 0 h 26 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
390 Kaia Yooniiie1 7 h 18 m 18 s 2 h 8 m 58 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
391 Pitel Kmrn 7 h 16 m 49 s 4 h 2 m 17 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
392 Ivar Lelif 7 h 15 m 52 s 0 h 24 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
393 Capitaine Ash HashtagLoulou 7 h 13 m 25 s 6 h 56 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
394 William Hervieux AideAnimation3 7 h 8 m 10 s 3 h 39 m 48 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
395 Nazir Mandragore974 7 h 4 m 36 s 2 h 18 m 38 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
396 Leone Rev 7 h 2 m 30 s 1 h 13 m 38 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
397 Ezechiel Xenoria 7 h 0 m 45 s 1 h 8 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
398 Megara Sauviage 6 h 59 m 34 s 2 h 41 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
399 Elior Elior 6 h 42 m 28 s 6 h 55 m 57 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
400 Serilda Reyum 6 h 29 m 42 s 2 h 44 m 7 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
401 Einar Handverker Ababoua 6 h 29 m 42 s 2 h 58 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
402 Guillaume Venom1019025 6 h 26 m 53 s 1 h 17 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
403 Maximillien Malordrin Opancakes 6 h 21 m 8 s 10 h 14 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
404 Couk 6 h 8 m 28 s 1 h 53 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
405 Thor Errata Kartizio3 6 h 3 m 43 s 24 h 56 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
406 Rouge Zeltaliyx 5 h 50 m 23 s 13 h 5 m 34 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
407 Jule Jule 5 h 43 m 2 s 0 h 56 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
408 Basim Ibn Ishaq JustNeod 5 h 38 m 41 s 6 h 50 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
409 Rosalia ayumies 5 h 37 m 12 s 2 h 11 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
410 Miguel LBRTDX 5 h 37 m 7 s 0 h 41 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
411 Eryon LuckyDream33 5 h 33 m 51 s 1 h 50 m 22 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
412 Vinny Teto 5 h 32 m 10 s 1 h 51 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
413 Armand Nelphethy 5 h 31 m 31 s 2 h 13 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
414 Vestagio Hakura2 5 h 30 m 19 s 2 h 21 m 53 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
415 Zac ZacZOUIN 5 h 29 m 36 s 1 h 31 m 32 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
416 Sinclair ThorKrom 5 h 29 m 26 s 2 h 32 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
417 helgade mao 4 h 58 m 3 s 12 h 54 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
418 Norbert SeaTortoise 5 h 20 m 16 s 12 h 4 m 8 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
419 Aeden Aeden 5 h 17 m 48 s 2 h 30 m 12 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
420 Karadoc HammerG3ar2 5 h 14 m 54 s 2 h 28 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
421 Farald Handverker AlphaFoxYT 5 h 14 m 8 s 1 h 27 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
422 Jahandar Faynii 5 h 10 m 52 s 1 h 11 m 3 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
423 Achille Sachsuki 5 h 10 m 2 s 2 h 49 m 59 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
424 Sam Themask129 5 h 8 m 16 s 5 h 12 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
425 Swein eijy 5 h 7 m 51 s 5 h 44 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
426 Kael Petitpain HiitHop 5 h 6 m 48 s 1 h 57 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
427 Ancelin kullsgamin 5 h 3 m 30 s 8 h 0 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
428 aka 5 h 2 m 29 s 2 h 15 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
429 Senssi 5 h 1 m 57 s 1 h 3 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
430 Nudrur Nudrur 4 h 58 m 3 s 2 h 35 m 7 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
431 Lilith Lilith 4 h 51 m 7 s 3 h 15 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
432 leyn 4 h 57 m 15 s 12 h 34 m 54 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
433 HelpConstruction 4 h 55 m 6 s 29 h 58 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
434 Byggvir Sohan00 4 h 53 m 39 s 2 h 7 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
435 Grohrat Trezety 4 h 51 m 27 s 1 h 18 m 11 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
436 Ulfric Spikeli 4 h 49 m 18 s 1 h 58 m 37 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
437 Steiner Monark 4 h 44 m 53 s 10 h 54 m 16 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
438 Olaf Ravengart Kartizio2 4 h 43 m 5 s 16 h 57 m 37 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
439 Atreus Ameriun anevv 4 h 41 m 3 s 7 h 36 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
440 Jaimy Jaimy 4 h 40 m 11 s 1 h 31 m 37 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
441 Aeldric JusDeFruit 4 h 38 m 11 s 2 h 52 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
442 Narsil JustMiroko 4 h 35 m 0 s 1 h 27 m 36 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
443 lucas 4 h 25 m 20 s 1 h 35 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
444 Maigy Maître Skaldr 4 h 24 m 26 s 2 h 4 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
445 Harold Joffy28 4 h 23 m 5 s 3 h 23 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
446 Fréderico LeTesteur 4 h 22 m 3 s 1 h 25 m 49 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
447 Roderic command32 4 h 20 m 40 s 2 h 10 m 47 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
448 Thibault Petitpain ZioWks 4 h 20 m 18 s 2 h 50 m 51 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
449 Octave Samedi 4 h 20 m 9 s 1 h 2 m 50 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
450 Aymar zenitudos 4 h 19 m 5 s 1 h 1 m 17 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
451 Léonard Osteru 4 h 16 m 14 s 17 h 9 m 57 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
452 Edgar lipton 4 h 15 m 33 s 0 h 44 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
453 Siméa simea 4 h 15 m 19 s 1 h 29 m 54 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
454 Sigurd Lafouine7516 4 h 0 m 43 s 1 h 30 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
455 Élric Ferno 3 h 59 m 48 s 0 h 58 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
456 Yuuki Rethel NekoYuki 3 h 54 m 52 s 1 h 23 m 37 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
457 Guillaume Bois-d'acier FunecireQC 3 h 52 m 56 s 1 h 28 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
458 illuh itzyu 3 h 52 m 3 s 0 h 56 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
459 O'Connor Attrayant 3 h 49 m 29 s 7 h 47 m 2 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
460 Andréa Kayuno 3 h 45 m 34 s 5 h 16 m 29 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
461 Physarel Physarel 3 h 45 m 11 s 1 h 21 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
462 Brigid Skully 3 h 43 m 48 s 1 h 6 m 4 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
463 alienord cekake 3 h 43 m 3 s 2 h 39 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
464 At'hom Athom 3 h 40 m 18 s 5 h 46 m 14 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
465 Shakir Al'Khatib Poudre 3 h 38 m 42 s 0 h 54 m 3 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
466 Aldrian Aldrion 3 h 34 m 44 s 1 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
467 Kobold CrYsTaLCHAOS21 3 h 32 m 45 s 0 h 49 m 22 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
468 savari Darkrich207 3 h 31 m 14 s 0 h 51 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
469 Elis CSK 3 h 30 m 59 s 2 h 13 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
470 Draven Akroum 3 h 27 m 29 s 1 h 52 m 37 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
471 Sorel Owlott 3 h 27 m 15 s 1 h 1 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
472 Giuseppe Maximiilien 3 h 25 m 43 s 1 h 24 m 48 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
473 Zǐháo Telero 3 h 23 m 36 s 1 h 21 m 47 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
474 Thyra Odeyssa 3 h 19 m 34 s 1 h 22 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
475 Ulla Ulla93 3 h 18 m 23 s 1 h 14 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
476 Ben zelfriano14 3 h 17 m 11 s 0 h 36 m 1 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
477 Thomas du Bois dragonse47 3 h 14 m 19 s 0 h 46 m 3 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
478 Albert Guigui 3 h 9 m 21 s 1 h 34 m 34 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
479 Olaf Handverker Letagueur 3 h 8 m 6 s 1 h 7 m 26 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
480 Louis Agentmh 3 h 6 m 46 s 0 h 22 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
481 maelor destrucstrom 3 h 1 m 55 s 1 h 24 m 14 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
482 Roland Martel DonaldMcTrump 3 h 1 m 53 s 0 h 49 m 52 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
483 Gabriel Noluck09 3 h 1 m 51 s 0 h 58 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
484 Matts Chico 3 h 1 m 34 s 2 h 13 m 48 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
485 Lehman 2 h 58 m 47 s 4 h 27 m 7 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
486 Jean-Louis lurcaz 2 h 56 m 24 s 2 h 47 m 8 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
487 Aede Zaraki 2 h 54 m 51 s 1 h 14 m 12 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
488 officiel1 2 h 54 m 23 s 0 h 38 m 57 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
489 Luc kevinetlucas 2 h 50 m 54 s 0 h 24 m 3 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
490 Hermval VolRogue 2 h 48 m 15 s 0 h 59 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
491 Shiyun Shizen 2 h 47 m 13 s 1 h 5 m 7 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
492 Vargh nagataaz 2 h 44 m 1 s 2 h 1 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
493 Alphonse Woopy 2 h 42 m 51 s 0 h 43 m 7 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
494 Frère Oèn NitNel 2 h 42 m 19 s 0 h 11 m 57 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
495 Liko FrostShader12 2 h 40 m 25 s 0 h 44 m 32 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
496 Silva KellerMan 2 h 39 m 32 s 3 h 24 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
497 Arrys Arrys 2 h 38 m 46 s 1 h 10 m 16 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
498 Henri Agard guesstme24 2 h 37 m 56 s 0 h 37 m 3 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
499 Calia H4atsuu 2 h 36 m 31 s 0 h 47 m 11 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
500 Hans Triplexis 2 h 34 m 21 s 1 h 26 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
501 Enzo ItsPelo 2 h 32 m 56 s 0 h 36 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
502 Mikaela Miss 2 h 32 m 25 s 1 h 24 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
503 Galnabrok Tomlebigfoot 2 h 31 m 2 s 1 h 4 m 8 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
504 Gu Changge Keloks 2 h 29 m 4 s 0 h 53 m 34 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
505 Matisse Matissegaming 2 h 29 m 1 s 1 h 7 m 59 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
506 Birum Agustin 2 h 21 m 5 s 0 h 59 m 17 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
507 Crom Alahache Craqu0tte 2 h 19 m 20 s 0 h 38 m 58 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
508 Lubin Legrand Max 2 h 15 m 44 s 0 h 59 m 15 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
509 Gweric Ameriun GwerIntriguant 2 h 14 m 24 s 2 h 23 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
510 William keisukesnow 2 h 13 m 28 s 0 h 26 m 28 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
511 Raphael mala raphaxie 2 h 12 m 50 s 1 h 42 m 36 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
512 Aristarque Timalotim 2 h 11 m 35 s 1 h 25 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
513 Clotaire Hugues 2 h 10 m 32 s 0 h 36 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
514 Alain EVA 2 h 6 m 40 s 0 h 46 m 58 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
515 Thibault BIQUETTE 2 h 6 m 26 s 0 h 59 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
516 Poe bonjourh 2 h 3 m 43 s 0 h 40 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
517 Jean eratorz 1 h 58 m 57 s 5 h 21 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
518 Clegan LolBonbonXD 1 h 57 m 51 s 0 h 11 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
519 Armand Lyr Swedii 1 h 55 m 38 s 0 h 14 m 56 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
520 Alec Baldwin Kero 1 h 49 m 14 s 0 h 27 m 52 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
521 John imran 1 h 47 m 44 s 0 h 46 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
522 Marion 1 h 47 m 30 s 1 h 39 m 36 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
523 Eline Voklaren 1 h 46 m 52 s 0 h 42 m 41 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
524 Artyom Slowpauk 1 h 45 m 50 s 0 h 31 m 50 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
525 Lucas lerosacier 1 h 42 m 27 s 0 h 14 m 44 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
526 Tobias Nika 1 h 42 m 16 s 4 h 4 m 18 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
527 MEHDI 1 h 40 m 32 s 0 h 7 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
528 Haoran Rofba 1 h 40 m 0 s 6 h 28 m 7 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
529 John MavrosPsychi 1 h 39 m 0 s 0 h 22 m 12 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
530 ???????? potdefleur 1 h 33 m 56 s 1 h 33 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
531 Hannah HannahSkillIssue 1 h 33 m 14 s 0 h 32 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
532 Rì qiû Akihima 1 h 27 m 46 s 2 h 25 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
533 Karl Twifouyt 1 h 32 m 14 s 0 h 35 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
534 Xavier Mouns 1 h 30 m 6 s 0 h 54 m 8 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
535 Adrian JustAnArdechois 1 h 29 m 30 s 0 h 32 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
536 Nezu Godjump 1 h 27 m 39 s 0 h 23 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
537 Alek Shieldcrock 1 h 26 m 49 s 0 h 25 m 40 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
538 Rose MaeR0se 1 h 26 m 43 s 0 h 17 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
539 morgan killianonre 1 h 26 m 31 s 0 h 44 m 21 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
540 Arathis CreepyKing 1 h 25 m 24 s 0 h 25 m 6 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
541 Haorah zaikoaka 1 h 25 m 7 s 0 h 57 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
542 Haku2003 1 h 23 m 48 s 0 h 10 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
543 Mahé BkMalek 1 h 21 m 52 s 1 h 20 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
544 Quentin Pyz 1 h 20 m 43 s 0 h 12 m 45 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
545 Henri Antioch 1 h 20 m 17 s 0 h 25 m 35 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
546 Cornelius LuZarB 1 h 20 m 4 s 0 h 10 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
547 Helyan Felina 1 h 15 m 27 s 0 h 28 m 42 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
548 Eldrivian Eldrivian 1 h 9 m 1 s 1 h 5 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
549 Flora Flora 1 h 8 m 21 s 0 h 40 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
550 Brok Liodasme 1 h 6 m 38 s 1 h 11 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
551 Romain Terril 1 h 6 m 21 s 0 h 19 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
552 Lotus BlackLotus 1 h 6 m 3 s 0 h 57 m 29 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
553 Charles Albert padidee 1 h 4 m 53 s 0 h 17 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
554 Adriem Helvar darcksilveur88 1 h 3 m 43 s 3 h 39 m 24 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
555 Musashi JxrdanFx 1 h 1 m 59 s 0 h 17 m 10 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
556 Antaku 1 h 1 m 32 s 0 h 0 m 53 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
557 Eliro AnaFrilops 0 h 52 m 48 s 0 h 7 m 3 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
558 Trevor Sunsaiky 0 h 52 m 38 s 0 h 53 m 32 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
559 Tamàs comiksdj 0 h 52 m 36 s 0 h 35 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
560 Saladin 0 h 49 m 22 s 0 h 25 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
561 AyzRoll 0 h 48 m 22 s 0 h 20 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
562 Gunnard HaagrahByMYRU 0 h 47 m 48 s 0 h 23 m 17 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
563 Helisende RubyX 0 h 46 m 21 s 4 h 41 m 6 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
564 Rodrik ValdMosley 0 h 44 m 4 s 0 h 12 m 47 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
565 Julian nicop971 0 h 38 m 55 s 0 h 43 m 23 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
566 Morana Hurtson 123SarahAngel 0 h 38 m 29 s 0 h 6 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
567 ? ? ? Pedro 0 h 32 m 43 s 5 h 42 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
568 Senestre Sheepy 0 h 30 m 38 s 0 h 13 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
569 Cabertin Cabtim 0 h 30 m 16 s 0 h 13 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
570 aboubakar 0 h 26 m 13 s 0 h 3 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
571 Alvaro Wayndd 0 h 25 m 57 s 0 h 27 m 27 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
572 éli Eska Diogo 0 h 24 m 38 s 0 h 10 m 6 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
573 Marcus moutoncandide 0 h 24 m 20 s 4 h 37 m 25 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
574 Sank 0 h 22 m 13 s 0 h 15 m 13 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
575 Ambre JW0lfy 0 h 20 m 14 s 0 h 39 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
576 Bkmalek 0 h 19 m 31 s 0 h 1 m 31 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
577 Michel Glaudin Shizen222 0 h 18 m 41 s 0 h 0 m 40 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
578 Ernest Mounark 0 h 18 m 6 s 2 h 25 m 19 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
579 Francesco 0 h 15 m 7 s 1 h 48 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
580 KeldariaCam 0 h 13 m 48 s 19 h 5 m 59 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
581 Varkash Varkash 0 h 12 m 3 s 1 h 20 m 5 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
582 Jules 0 h 8 m 50 s 0 h 32 m 33 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
583 Alfred Bouillon Sayano 0 h 8 m 47 s 0 h 21 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
584 Rhaenor 0 h 5 m 7 s 0 h 12 m 55 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
585 Ash OrigiNShadover 0 h 4 m 55 s 3 h 8 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
586 Nahlir 0 h 4 m 14 s 0 h 43 m 9 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
587 angel52 0 h 3 m 54 s 0 h 1 m 46 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
588 Veyra 0 h 3 m 45 s 0 h 43 m 2 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
589 Mat Mat30505 0 h 3 m 43 s 0 h 0 m 40 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
590 Torvak 0 h 3 m 42 s 0 h 21 m 39 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
591 Ronan Toden3 0 h 1 m 23 s 0 h 20 m 43 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
592 Lucas Zyfer 0 h 1 m 20 s 0 h 1 m 40 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
593 Hans Cobaye 0 h 1 m 12 s 0 h 12 m 50 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
594 Stalladris 0 h 1 m 1 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
595 CamaradeCarter 0 h 0 m 8 s 0 h 3 m 52 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
596 Shaira 0 h 0 m 1 s 0 h 11 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
597 Olaf WingarTV 0 h 0 m 0 s 0 h 1 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
598 Whx1tE 0 h 0 m 0 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
599 AbubkarElMehdi 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
600 Leonard2Roseval 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
601 malo 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
602 Gueguelink 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
603 Samji034 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
604 leavouy 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
605 VampirismBal 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
606 Sushi3865 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
607 zordix 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
608 Adymos 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
609 cyeraur 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
610 Raixox25D 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
611 painsdepice 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
612 Roireclache 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
613 evan 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
614 meinfurher69 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
615 MiniUzi67 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
616 BeeMInova 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
617 Solariew 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
618 Br3uk 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
619 Noalechat23 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
620 Derited 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
621 TroZx 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
622 Luffy0309 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
623 Mimi3010 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
624 Masica 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
625 Vasco 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
626 LaBriocheSucree 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
627 WeaKzi 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
628 Natsu1410 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
629 BayekAuditore 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
630 MaxiTexYT 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
631 KuToGrosBisceps 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
632 catertom74 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
633 raytonet 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
634 Lockxy 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
635 Paink 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
636 Fabio 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
637 anton200919 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
638 torture 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
639 JustHyene 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
640 dokusaka 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
641 karla 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
642 renparuji 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
643 Louki 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
644 Watinoe 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
645 EffectBlackH 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
646 legabr 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
647 Madoc 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
648 Hami2oo3 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
649 RatpiBressom 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
650 Chinoistylee 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
651 Norveig 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
652 vRyuXuv 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
653 PaulochonLeVrai 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
654 CabezAciero 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
655 skyaa83000 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
656 Bjorn 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
657 Reitai 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
658 CT0m 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
659 Ezequiel 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
660 Caleb 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
661 aurora04 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
662 Mrigoal640 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
663 guniver 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
664 kiv0o 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
665 AliLobster87 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
666 MortysDono 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
667 LeDiableBleu096 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
668 Vampinou 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
669 bowser2077 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
670 jahsohsani 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
671 CodeX 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
672 LEDON 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
673 Azwim 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
674 Elysarcadius 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
675 Tirga 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
676 AmStaff 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
677 Gaga 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
678 SimbaVie 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
679 Jessydu592009 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
680 AngeMort9 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
681 ZMAXofficiel 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
682 Kazouto 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
683 furijo9 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
684 Yukijabami2007 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
685 spotterligth 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
686 PotatoYari 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
687 Veredia 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
688 LEO 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
689 HiroIzuko 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
690 Teatox 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
691 Kanae 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
692 jocker02330 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
693 fyro 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
694 Kan3ki73 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
695 0xAstrion 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
696 Circonsition 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
697 Dzako 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
698 Pierre Griava 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
699 Mag 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
700 Guckman 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
701 Feesky 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
702 velzoizillo 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
703 nathanmsni 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
704 ltumark 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
705 Mushoku 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
706 Baptiste 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
707 MoonRocket5 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
708 Fonemon 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
709 Justin12 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
710 leprodu77 0 h 0 m 0 s 0 h 0 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
711 kaloow -1 h -1 m -7 s 0 h 36 m 50 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
712 Ariel ariel -1 h -1 m -20 s 0 h 5 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
713 Vordkof -1 h -1 m -20 s 0 h 3 m 0 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
714 Noah2505749 -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
715 Nagashi -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
716 NeoZGiX -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
717 TOMKEZ -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
718 mpro -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
719 R2K -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
720 funandfun -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
721 SkyBlood -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
722 freez3r -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
723 Rip83 -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
724 IceTea -1 h -1 m -20 s 0 h 0 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
725 Oxtrne2 -1 h -1 m -40 s 0 h 2 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s
726 Kalie Kalie07 -1 h -2 m -13 s 1 h 45 m 20 s
( ! ) Notice: Undefined index: build_time in /var/www/html/pages/wiki.php(45) : eval()'d code on line 636
Call Stack
#TimeMemoryFunctionLocation
10.0000359336{main}( ).../index.php:0
20.0033387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0082519248includestring( ).../wiki.php:482
40.0085590592eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s