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.070365358593 connecté.e.s.



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



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

Statistiques d'activité


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

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



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

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

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

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 Salomon SalomonEbenac 1459 h 34 m 6 s 1034 h 14 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 Unutea Skozawa 1501 h 43 m 4 s 628 h 47 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Esther Esther 1313 h 9 m 58 s 1023 h 47 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 Volodymyr Volodymyr 1309 h 38 m 15 s 387 h 55 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Tosteen Eretty 671 h 0 m 34 s 308 h 57 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Jurgen ShobatsuMitei 619 h 57 m 41 s 354 h 27 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 Jarod Mornechêne Mitajax2 582 h 31 m 54 s 549 h 57 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Tannulf Remi4249 602 h 13 m 13 s 219 h 43 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 Ali'amad Aliamad 624 h 9 m 13 s 420 h 9 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Luna Shad0w 447 h 13 m 38 s 610 h 57 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 ??? Nathanaelle2611 451 h 39 m 19 s 3150 h 3 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Vidar SoulEater 497 h 22 m 37 s 134 h 37 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Abel Colin 440 h 56 m 6 s 599 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Rumi Rumi 431 h 37 m 3 s 361 h 32 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Gimli Gimli 419 h 18 m 27 s 139 h 53 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Frère Maximus Maximus 359 h 13 m 17 s 217 h 51 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Vihana Miadray 394 h 49 m 13 s 238 h 46 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Rollo Ravengart RolloRavengart 311 h 53 m 59 s 565 h 35 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 Circei Haevan 330 h 4 m 39 s 229 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 Gisèle Millicie 335 h 46 m 58 s 157 h 50 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Tho Mas Opantoufles 333 h 32 m 59 s 182 h 37 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 ✦ Luscinia Mirage 191 h 37 m 3 s 820 h 14 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 Lo-Anna Astréos LoDelaVache 285 h 6 m 34 s 177 h 18 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 Modérateur AlexiS 252 h 26 m 36 s 450 h 3 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 Elizælle Elizaelle 266 h 26 m 0 s 115 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Vénuk Iranau 181 h 38 m 7 s 413 h 35 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Maille Keull Mikeal 225 h 52 m 40 s 166 h 54 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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 Roseline De Nariel BombshellCherry 217 h 22 m 41 s 288 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Malo OogieBoogie 166 h 11 m 38 s 167 h 46 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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éoderid BouffeurDeTicket 197 h 53 m 6 s 216 h 58 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Thésée d'Eméruldo Ozaki 177 h 43 m 27 s 594 h 29 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 ? ? ? ? GamingRaznov 182 h 52 m 23 s 447 h 35 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Rodrigue d'Éméruldo TyzeR 129 h 27 m 18 s 821 h 54 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Arion QuadrAlexis 147 h 35 m 55 s 88 h 29 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Hugo De l'Ecluse HugoLecluse 122 h 26 m 42 s 103 h 3 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 Alexel ⭔ ItsAxel 129 h 15 m 38 s 130 h 36 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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 tosteen 112 h 57 m 52 s 150 h 28 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

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



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

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

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

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

Statistiques d'activité


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

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Svaknir Artegore 91 h 51 m 55 s 170 h 56 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 90 h 6 m 3 s 115 h 1 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 🎟🎁🤎❌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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Auraline Auraline 92 h 0 m 14 s 54 h 8 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 ??? Shad0wFallen 76 h 25 m 48 s 189 h 52 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Estienne Dragler HakuraGK 85 h 45 m 36 s 58 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Alfred Miki8 78 h 1 m 35 s 174 h 55 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Alexel ⭓ ItsAlex 74 h 16 m 46 s 49 h 26 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Syrner GSyrner 72 h 46 m 54 s 239 h 49 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 ? ? ? 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Mémé Huguette 58 h 15 m 49 s 42 h 6 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Kley Smoke 56 h 19 m 52 s 29 h 39 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Arthur Vaindiou DatFrenchGuy 59 h 49 m 50 s 15 h 10 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 rune JeuneRoux 58 h 10 m 34 s 34 h 28 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Momo Momo 54 h 46 m 29 s 46 h 34 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Cheshire Cheshire 52 h 29 m 51 s 57 h 57 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Nimlothar Silvagil Nimlothar 55 h 9 m 44 s 12 h 50 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Fahrner Stefansson Dragono1017 51 h 36 m 41 s 393 h 40 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Sirius Kaldwin Hvedrung07 42 h 42 m 5 s 124 h 52 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Haku Ná (哈苦 拿) Haakhuna 35 h 52 m 53 s 44 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Al-Bachir Stalla2 46 h 23 m 2 s 17 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Astralya Astra 44 h 9 m 29 s 63 h 44 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Aldwen Harbidelux94 40 h 18 m 53 s 17 h 20 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Baldur Forgétoile Cahyr 38 h 47 m 27 s 17 h 21 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 MisterWallas2 33 h 10 m 53 s 19 h 41 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 ??? Deux 36 h 34 m 11 s 130 h 58 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Harald Papillondenuit 32 h 5 m 3 s 10 h 30 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Etnios Forgeclair Irathyy 31 h 29 m 50 s 26 h 47 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Baptiste Rocheux Caphouniet 26 h 32 m 57 s 47 h 39 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Flora PotiFarfaD 23 h 28 m 10 s 10 h 6 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 É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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Elias Amaran Kaadjuh 22 h 0 m 39 s 6 h 19 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Nath Nathanael 18 h 52 m 5 s 101 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Votre Trépas Esquie 20 h 55 m 0 s 8 h 16 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Talia Xane 18 h 11 m 2 s 20 h 31 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Asmaël IceTeaBE 17 h 21 m 39 s 10 h 51 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Robert De-la-marée-pêcheur AideAnimation1 16 h 6 m 37 s 4 h 16 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 ??????? 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Arthur Arthur 13 h 20 m 47 s 8 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Millistaff 7 h 22 m 8 s 25 h 14 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Le prince des crabes Deacon 5 h 33 m 8 s 26 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 ??? vinivedivici 6 h 8 m 6 s 5 h 1 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Rouge Zeltaliyx 5 h 8 m 21 s 6 h 50 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 leyn 4 h 54 m 50 s 10 h 55 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 É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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Draven Akroum 3 h 21 m 22 s 1 h 52 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 Matts Chico 2 h 57 m 7 s 2 h 12 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 é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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 ? ? ? Pedro -1 h -1 m -26 s 1 h 55 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

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 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.0001359336{main}( ).../index.php:0
20.0068387816include( '/var/www/html/pages/wiki.php' ).../index.php:48
30.0132519216includestring( ).../wiki.php:482
40.0138590840eval( '?> $session["log_date"], "type" => "start"]; $timestamps[] = ["timestamp" => $session["last_seen"], "type" => "end"]; } } usort($timestamps, function ($a, $b) { if ($a["timestamp"] == $b["timestamp"]) { return $a["type"] == "end" ? -1 : 1; } return $a["timestamp"] - $b["timestamp"]; }); $currentPlayers = 0; $maxConcurrentPlayers = 0; foreach ($timestamps as $timestamp) { if ($timestamp["type"] == "start") { $currentPlayers++; $maxConcurrentPlayers = max($maxConcurrentPlayers, $currentPlayers); } else { $currentPlayers--; } } return $maxConcurrentPlayers; } class DateIdConverter { private const REFERENCE_DATE = '2019-10-30'; private const INITIAL_ID = 0; public static function convertDateToId($date) { $referenceDate = new DateTime(self::REFERENCE_DATE); $givenDate = new DateTime($date); $daysDifference = $referenceDate->diff($givenDate)->days; return self::INITIAL_ID + $daysDifference; } public static function convertIdToDate($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->format('Y-m-d'); } public static function convertIdToTimestamp($id) { $daysDifference = $id - self::INITIAL_ID; $referenceDate = new DateTime(self::REFERENCE_DATE); $newDate = $referenceDate->add(new DateInterval('P' . $daysDifference . 'D')); return $newDate->getTimestamp() * 1000; // Convert to milliseconds } public static function getCurrentDateId() { $currentDate = new DateTime(); $referenceDate = new DateTime(self::REFERENCE_DATE); $daysDifference = $referenceDate->diff($currentDate)->days; return self::INITIAL_ID + $daysDifference; } } function formatMilliseconds($milliseconds) { $seconds = floor($milliseconds / 1000); // Convertir en secondes $minutes = floor($seconds / 60); // Calculer les minutes $hours = floor($minutes / 60); // Calculer les heures $remainingMinutes = $minutes % 60; // Calculer les minutes restantes $remainingSeconds = $seconds % 60; // Calculer les secondes restantes $formattedTime = "$hours h $remainingMinutes m $remainingSeconds s"; return $formattedTime; } $stats = []; $playerCount = []; $totalPlayHours = []; $filter = []; $invalid = 1000000000; $minDay = 0; $maxDay = $invalid; if(isset($_GET["interval"])) { $intervalStr = $_GET["interval"]; $arr = explode("/", $intervalStr); $one = DateIdConverter::convertDateToId($arr[0]); $two = DateIdConverter::convertDateToId($arr[1]); $minDay = min($one, $two); $maxDay = max($one, $two); } $filter["\$where"] = "function() { return this.day_id >= $minDay && this.day_id <= $maxDay}"; $days = Keldatabase::playerDaysDocument()->find($filter, ["sort" => ["day_id" => -1]]); function getDay($previous, $row) { $infos = []; $infos["username"] = $row["username"]; $infos["afk_time"] = (isset($previous) ? $previous["afk_time"] : 0) + $row["afk_time"]; $infos["build_time"] = (isset($previous) ? $previous["build_time"] : 0) + (isset($row["build_time"]) ? $row["build_time"] : 0); $infos["sessions"] = $row["sessions"]; $totalTime = isset($previous) ? $previous["total_time"] : 0; foreach ($row["sessions"] as $sess) { $totalTime += $sess["last_seen"] - $sess["log_date"]; } $infos["total_time"] = $totalTime; return $infos; } foreach ($days as $day) { if($day != null) { //$stat = []; $username = $day["username"]; $dayInfos = getDay(isset($stats[$username]) ? $stats[$username] : null, $day); $singleDayInfos = getDay(null, $day); $stats[$username] = $dayInfos; $dayId = $day["day_id"]; if(!isset($playerCount[$dayId])) { $playerCount[$dayId]["totalplayers"] = 0; $playerCount[$dayId]["days"] = []; } $playerCount[$dayId]["totalplayers"] ++; $strictDay = ["sessions" => $dayInfos["sessions"]]; $totalPlayHours[$dayId] = ( isset($totalPlayHours[$dayId]) ? $totalPlayHours[$dayId] : 0) + ((($singleDayInfos["total_time"] - $singleDayInfos["afk_time"] - $singleDayInfos["build_time"]) / 1000) / 60) / 60; array_push($playerCount[$dayId]["days"], $strictDay); } else { $hourCount[$dayId] = (isset($hourCount[$dayId]) ? $hourCount[$dayId] : 0); } } //usort($stats, "cmp"); function cmpActiveTime($a, $b) { return (($b["total_time"] - $b["afk_time"] - $b["build_time"]) - ($a["total_time"] - $a["afk_time"] - $b["build_time"])); } //usort($playerCount, "cmp"); usort($stats, "cmpActiveTime"); ?>
$value) { $moyenneNombre ++; $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $d = findMaxConcurrentPlayers($value["days"]); $moyenneTotal += $d; $points[] = [$tmsp, $d]; } echo $tmsp . "
"; $points[] = [$i - (24 * (60 * 60 * 1000)), 0]; $i = 10000000000000; foreach($totalPlayHours as $key => $value) { $tmsp = DateIdConverter::convertIdToTimestamp($key); if($tmsp < $i) { $i = $tmsp; } $points2[] = [$tmsp, $value]; } echo $tmsp . "
"; $points2[] = [$i - (24 * (60 * 60 * 1000)), 0]; $jsonChart = ["max_players" => $points]; $jsonChart2 = ["max_players" => $points2]; ?>

Statistiques d'activité


Définir l'interval: Définir
Filtres par défaut:
Depuis toujours Depuis 7 jours Depuis 30 jours Ce mois Cette semaine Aujourd'hui

Le pic de connecté.e.s moyen durant cette personne était de connecté.e.s.



$value) { $totalHours += $value; } ?>

Les joueurs et joueuses de Keldaria ont au total joué heures sur le serveur.

$value) { echo $key . "/ total: " . $value["totalplayers"] . "
"; //var_dump($value["days"]); echo findMaxConcurrentPlayers($value["days"]); echo "
"; }*/ ?>

Skin Position Personnage Pseudonyme Temps Actif Temps AFK Temps Mont-Cristal
getPlayerData()->getString("keldaria:roleplayname"); ?> ">
)
.../wiki.php:45
0 h 0 m 0 s